package com.harmony.pilot.common.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 代码位置信息
 * 用于代码导航（Go to Definition, Find References等）
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Location {
    /**
     * 文件路径
     */
    private String filePath;
    
    /**
     * 行号（1-based）
     */
    private int line;
    
    /**
     * 列号（1-based）
     */
    private int column;
    
    /**
     * 结束行号（可选）
     */
    private Integer endLine;
    
    /**
     * 结束列号（可选）
     */
    private Integer endColumn;
    
    /**
     * 范围信息（可选）
     */
    private Range range;
    
    /**
     * 代码范围
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class Range {
        private Position start;
        private Position end;
        
        @Data
        @Builder
        @NoArgsConstructor
        @AllArgsConstructor
        public static class Position {
            private int line;
            private int column;
        }
    }
}

